package fr.lelouet.ServersModel.virtual;

/**
 * a virtual machine requires some resources to work.
 * @author le louet
 */
public interface VirtualMachine {

  /**
   * @return the CPU specification of this. It only means that this this
   *         requires to see that number of CPU to be usable, and does not
   *         specify the computing power required
   */
  public int getRequiredCPU();

  /** @return the memory specification this requires to run */
  public int getRequiredMemory();

  /**
   * @return the time in second this requires to be started at, from a base
   *         reference. It can be seen as the time at which it is added to the
   *         list or running virtual machines
   */
  public long getStartTime();

}
